var a;
var b = new Promise((resolve, reject) => {
  console.log("pro1");
  setTimeout(() => {
    resolve();
  }, 1000);
})
  .then(() => {
    console.log("pro2");
  })
  .then(() => {
    console.log("pro3");
  })
  .then(() => {
    console.log("pro4");
  });

// 先运行右边代码，在将右边代码赋值给变量a
a = new Promise(async (resolve, reject) => {
  console.log(a);
  await b;
  console.log(a);
  console.log("start1");
  await a;
  resolve(true);
  console.log("after2");
});

console.log("end");

// 全 pro1
// 宏
// 微 pro2

// pro1 undefined end pro2 pro3 pro4 pending start1
